using System;
using System.Linq;

namespace Rarous.NForms {
  /// <summary>
  /// Třída reprezentující formulářové tlačítko.
  /// </summary>
  public class ButtonItem : FormItem {
    /// <summary>
    /// Konstruktor.
    /// </summary>
    /// <param name="parent">Nadřazený formulář.</param>
    /// <param name="name">Název formulářového pole.</param>
    public ButtonItem(Form parent, string name)
      : this(parent, name, null) {
    }

    /// <summary>
    /// Konstruktor.
    /// </summary>
    /// <param name="parent">Nadřazený formulář.</param>
    /// <param name="name">Název formulářového pole.</param>
    /// <param name="attributes">Objekt s atributy.</param>
    public ButtonItem(Form parent, string name, object attributes)
      : this(parent, name, attributes, InputType.Button) {
    }

    /// <summary>
    /// Konstruktor.
    /// </summary>
    /// <param name="parent">Nadřazený formulář.</param>
    /// <param name="name">Název formulářového pole.</param>
    /// <param name="attributes">Objekt s atributy.</param>
    /// <param name="type">Typ formulářového tlačítka.</param>
    public ButtonItem(Form parent, string name, object attributes, InputType type) {
      ConstructorContract(parent, name);

      Control = new HtmlElement(InputTag, new { Name = name, Type = type }, HtmlElement.SelfClosing);

      Register(parent, name);
      SetAttributes(attributes);
    }
  }
}
